package com.fare.taluo.core.domain.config.channel;

import java.util.List;

import com.dayatang.domain.EntityRepository;

public interface SourceEntityRepository extends EntityRepository {
	
	/**
	 * 返回查询抓取网站数据
	 * @return
	 */
	public List<SourceEntity> findAllSourceEntity();
	
	/**
	 * 返回查询抓取网站数据
	 * @param name
	 * @param url
	 * @param webTyle 网站类型(1.官网，2。代理)
	 * @return
	 */
	public List<SourceEntity> findSourceEntityListByConditions(String name,String url,String webTyle,String sorttype,int pageNum,int pageSize);
	
	/**
	 * 更新
	 * @param id
	 * @param crawlStatus 1.表示系统从这些网站抓数；0.表示系统不到这些网站抓数。
	 * @return  SourceEntity
	 * @param user
	 * @return
	 */
	public SourceEntity updateSourceEntity(Long id,Integer crawlStatus,Long userId);

	/**
	 * 返回查询总个数
	 * @param name
	 * @param url
	 * @param webTyle 网站类型(1.官网，2。代理)
	 * @return
	 */
	public int getSourceEntityCount(String name,String url,String webTyle);
	
	/**
	 * 
	 * 【根据名称查返回对象】
	 * 
	 * @author fangdongyang 2013-1-29
	 * @param name
	 * @return
	 */
	public SourceEntity getSourceEntityByName(String name);
	
	

	/**
	 * 返回查询抓取网站数据
	 * @param name
	 * @return
	 */
	public List<SourceEntity> findSourceEntityListByChanelName(String name);
	
	
	
	public List<SourceEntity> findSourceEntityListByWbid(String webTyle);
	
	
	public List<SourceEntity> findSourceEntityListByid(Long id);
	
	public List<SourceEntity> findSourceEntityByCk(String ck);
	
	public List<SourceEntity> findSourceEntityListByCrawlStatus(int crawlStatus);
    
	/**
	 * 找出存在该航线的航空公司
	 * @param fromCity
	 * @param toCity
	 * @return
	 * @author zengxiangqi
	 */
	public List<SourceEntity> findSourceEntityListByLine(String fromCity,String toCity);
	
	/**
	 * 从抓取航线设置中找出存在该航线的航空公司
	 * @param fromCity
	 * @param toCity
	 * @return
	 */
	public List<SourceEntity> findSourceEntityListByCrawlLine(String fromCity,
			String toCity);
	
	public List<SourceEntity> findSourceEntityListByCarrierKey(String carrierKey);
	
	public SourceEntity findByHbaseKey(String hbaseKey);
	
	/**
	 * 找出处于抓取状态的航空公司（当前引擎有对其抓取，且是航空公司，不是渠道）
	 * @return
	 * @throws Exception
	 */
	public List<SourceEntity> findCrawlAirCompanys();
	/**
	 * 找出所有处于抓取状态的渠道
	 * @return
	 * @throws Exception
	 */
	public List<SourceEntity> findCrawlChannel() throws Exception;

	public List<SourceEntity> findByCarrierKey(String carrierKey);
	
	public SourceEntity find(Long id) throws Exception;
	
}
